/*
 * REFXMLSchemaNotation.h
 *
 *  Created on: Mar 31, 2013
 *      Author: Lucifer
 */

#ifndef	__BFX_REFXMLSCHEMANOTATION_H__
#define	__BFX_REFXMLSCHEMANOTATION_H__

#include "../core/REFXMLQualifiedName.h"

namespace BFX
{

//////////////////////////////////////////////////////////////////////////////
class REFXMLSchemaNotation : public REFObject
{
public:
	REFXMLSchemaNotation(REFXMLQualifiedName* pName);
	virtual ~REFXMLSchemaNotation();

	REFXMLQualifiedName* GetName() const;

	UniString GetSystemLiteral() const;
	void SetSystemLiteral(const UniString& str);
	UniString GetPubid() const;
	void SetPubid(const UniString& str);

private:
	REF<REFXMLQualifiedName>	m_pName;
	UniString	m_strSystemLiteral;	// System literal
	UniString	m_strPubid;			// pubid literal
};

//////////////////////////////////////////////////////////////////////////////

inline REFXMLSchemaNotation::REFXMLSchemaNotation(REFXMLQualifiedName* pName)
{
	m_pName = pName;
}
inline REFXMLSchemaNotation::~REFXMLSchemaNotation()
{
}
inline REFXMLQualifiedName* REFXMLSchemaNotation::GetName() const
{
	return m_pName;
}
inline UniString REFXMLSchemaNotation::GetSystemLiteral() const
{
	return m_strSystemLiteral;
}
inline void REFXMLSchemaNotation::SetSystemLiteral(const UniString& str)
{
	m_strSystemLiteral = str;
}
inline UniString REFXMLSchemaNotation::GetPubid() const
{
	return m_strPubid;
}
inline void REFXMLSchemaNotation::SetPubid(const UniString& str)
{
	m_strPubid = str;
}

//////////////////////////////////////////////////////////////////////////////

typedef REFWrapper<HashMap<UniString, REF<REFXMLSchemaNotation> > > REFXMLSchemaNotationMap;

}	//	namespace BFX

#endif	//	__BFX_REFXMLSCHEMANOTATION_H__
